package com.baijiaoxi.common.model.login;

public interface LoginHelper {

    /**
     * 登陆
     *
     * @param userId
     * @return
     */
    default String login(String scene, Long userId) {
        return login(scene, String.valueOf(userId));
    }

    default String login(Long scene, Long userId) {
        return login(String.valueOf(scene), String.valueOf(userId));
    }

    String login(String scene, String userId);

    default String login(String userId) {
        return login("default", userId);
    }

    default String login(Long userId) {
        return login(String.valueOf(userId));
    }

    /**
     * 注销
     *
     * @param sign
     */
    void layout(String sign);

    /**
     * 注销
     *
     * @param scene,userId
     */
    void layout(String scene, String userId);

    default void layout(String scene, Long userId) {
        layout(scene, String.valueOf(userId));
    }

    default void layout(Long scene, Long userId) {
        layout(String.valueOf(scene), String.valueOf(userId));
    }

    /**
     * 检查登陆状态
     *
     * @param sign
     * @return
     */
    boolean checkLogin(String sign);

    /**
     * 根据sign获取登录用户ID
     *
     * @param sign
     * @return
     */
    String getUserId(String sign);

    default Long getUserIdAsLong(String sign) {
        return Long.valueOf(getUserId(sign));
    }

}
